home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / ShapeB.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  9.4 KB  |  385 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:ShapeB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODBaseShape_xh
  18. #define SOM_ODBaseShape_xh
  19.  
  20. class ODBaseShape;
  21.  
  22. #define ODBaseShape_MajorVersion 1
  23. #define ODBaseShape_MinorVersion 0
  24.  
  25. /* C++ som defs */
  26. #include <somcls.xh>
  27.  
  28. /* Include C++ parent defs */
  29. #ifndef SOM_ODObject_xh
  30. #include <ODObject.xh>
  31. #endif
  32.  
  33. #ifndef ODBaseShape_API
  34. #define ODBaseShape_API
  35. /*
  36.  * -- The Class API
  37.  */
  38.  
  39. /*
  40.  * Start of user-defined types:
  41.  */
  42. class ODExtension;
  43. class ODStorageUnit;
  44. class ODShape;
  45. class ODTransform;
  46.  
  47. /*
  48.  * End of user-defined types.
  49.  */
  50.  
  51. #if applec ^ PRAGMA_LIB_EXPORT
  52. #pragma lib_export on
  53. #endif
  54.  
  55.  
  56. /* A procedure to create the ODBaseShape Class */
  57. SOMEXTERN SOMClass * SOMLINK ODBaseShapeNewClass(
  58.         integer4 majorVersion,
  59.         integer4 minorVersion);
  60.  
  61. /* The API to the ODBaseShape class object, and the methods it introduces. */
  62. typedef struct ODBaseShapeClassDataStructure {
  63.     SOMClass *classObject;
  64.     somMToken SetGeometryMode;
  65.     somMToken GetGeometryMode;
  66.     somMToken GetBoundingBox;
  67.     somMToken SetRectangle;
  68.     somMToken CopyPolygon;
  69.     somMToken SetPolygon;
  70.     somMToken GetPlatformShape;
  71.     somMToken SetPlatformShape;
  72.     somMToken WriteShape;
  73.     somMToken ReadShape;
  74.     somMToken IsSameAs;
  75.     somMToken IsEmpty;
  76.     somMToken ContainsPoint;
  77.     somMToken IsRectangular;
  78.     somMToken HasGeometry;
  79.     somMToken Copy;
  80.     somMToken CopyFrom;
  81.     somMToken Transform;
  82.     somMToken InverseTransform;
  83.     somMToken Subtract;
  84.     somMToken Intersect;
  85.     somMToken Union;
  86.     somMToken reserved1;
  87. } ODBaseShapeClassDataStructure;
  88. #ifdef SOM_NO_DATA_EXPORTS
  89.    SOMEXTERN ODBaseShapeClassDataStructure * ODBaseShapeGetClassData ( void );
  90. #   undef ODBaseShapeClassData
  91. #   define ODBaseShapeClassData (*ODBaseShapeGetClassData())
  92. #else
  93.    SOMEXTERN ODBaseShapeClassDataStructure ODBaseShapeClassData;
  94. #endif /* SOM_NO_DATA_EXPORTS */
  95.  
  96. #if applec ^ PRAGMA_LIB_EXPORT
  97. #pragma lib_export off
  98. #endif
  99.  
  100. #define _ODBaseShape ODBaseShapeClassData.classObject
  101.  
  102. /* The API to parentMtabs for ODBaseShape, and the instance data it introduces. */
  103. SOMEXTERN struct ODBaseShapeCClassDataStructure {
  104.     somMethodTabs parentMtab;
  105.     somDToken instanceDataToken;
  106. } ODBaseShapeCClassData;
  107.  
  108. /*
  109.  * -- Typedefs for Procedures that support Methods introduced by ODBaseShape
  110.  */
  111. SOMEXTERN {
  112. typedef void   (* SOMLINK somTD_ODBaseShape_SetGeometryMode)(ODBaseShape *somSelf, Environment *ev,
  113.         ODGeometryMode mode);
  114. typedef ODGeometryMode   (* SOMLINK somTD_ODBaseShape_GetGeometryMode)(ODBaseShape *somSelf, Environment *ev);
  115. typedef void   (* SOMLINK somTD_ODBaseShape_GetBoundingBox)(ODBaseShape *somSelf, Environment *ev,
  116.         ODRect* bounds);
  117. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_SetRectangle)(ODBaseShape *somSelf, Environment *ev,
  118.         ODRect* rect);
  119. typedef ODPolygon   (* SOMLINK somTD_ODBaseShape_CopyPolygon)(ODBaseShape *somSelf, Environment *ev);
  120. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_SetPolygon)(ODBaseShape *somSelf, Environment *ev,
  121.         ODPolygon* polygon);
  122. typedef ODPlatformShape   (* SOMLINK somTD_ODBaseShape_GetPlatformShape)(ODBaseShape *somSelf, Environment *ev,
  123.         ODGraphicsSystem graphicsSystem);
  124. typedef void   (* SOMLINK somTD_ODBaseShape_SetPlatformShape)(ODBaseShape *somSelf, Environment *ev,
  125.         ODGraphicsSystem graphicsSystem,
  126.         ODPlatformShape platformShape);
  127. typedef void   (* SOMLINK somTD_ODBaseShape_WriteShape)(ODBaseShape *somSelf, Environment *ev,
  128.         ODStorageUnit* storageUnit);
  129. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_ReadShape)(ODBaseShape *somSelf, Environment *ev,
  130.         ODStorageUnit* storageUnit);
  131. typedef ODBoolean   (* SOMLINK somTD_ODBaseShape_IsSameAs)(ODBaseShape *somSelf, Environment *ev,
  132.         ODShape* compareShape);
  133. typedef ODBoolean   (* SOMLINK somTD_ODBaseShape_IsEmpty)(ODBaseShape *somSelf, Environment *ev);
  134. typedef ODBoolean   (* SOMLINK somTD_ODBaseShape_ContainsPoint)(ODBaseShape *somSelf, Environment *ev,
  135.         ODPoint* point);
  136. typedef ODBoolean   (* SOMLINK somTD_ODBaseShape_IsRectangular)(ODBaseShape *somSelf, Environment *ev);
  137. typedef ODBoolean   (* SOMLINK somTD_ODBaseShape_HasGeometry)(ODBaseShape *somSelf, Environment *ev);
  138. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_Copy)(ODBaseShape *somSelf, Environment *ev);
  139. typedef void   (* SOMLINK somTD_ODBaseShape_CopyFrom)(ODBaseShape *somSelf, Environment *ev,
  140.         ODShape* sourceShape);
  141. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_Transform)(ODBaseShape *somSelf, Environment *ev,
  142.         ODTransform* transform);
  143. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_InverseTransform)(ODBaseShape *somSelf, Environment *ev,
  144.         ODTransform* transform);
  145. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_Subtract)(ODBaseShape *somSelf, Environment *ev,
  146.         ODShape* diffShape);
  147. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_Intersect)(ODBaseShape *somSelf, Environment *ev,
  148.         ODShape* sectShape);
  149. typedef ODShape*   (* SOMLINK somTD_ODBaseShape_Union)(ODBaseShape *somSelf, Environment *ev,
  150.         ODShape* unionShape);
  151. }
  152.  
  153. #endif /* ODBaseShape_API */
  154.  
  155.  
  156. /*
  157.  * -- Method Tokens are Thunks
  158.  */
  159. #undef somresolve_
  160. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  161.  
  162. /*
  163.  * -- The C++ Wrapper Class for ODBaseShape
  164.  */
  165. class ODBaseShape : public ODObject
  166. {
  167. public:
  168.  
  169. void *operator new(size_t size)
  170. {
  171.    SOM_IgnoreWarning(size);
  172.    if (!ODBaseShapeClassData.classObject) 
  173.       ODBaseShapeNewClass(ODBaseShape_MajorVersion,ODBaseShape_MinorVersion);
  174.    return (void *)
  175.       ((somTD_SOMClass_somNew)
  176.       somresolve_((SOMObject *)((void*)(ODBaseShapeClassData.classObject)),
  177.                  SOMClassClassData.somNew))
  178.          ((SOMClass *)((void*)(ODBaseShapeClassData.classObject)));
  179. }
  180.  
  181. void operator delete(void * obj)
  182. {
  183.    ((SOMObject *)obj)->somFree();
  184. }
  185.  
  186. /* public method: SetGeometryMode */
  187. void   SetGeometryMode(Environment *ev,
  188.         ODGeometryMode mode)
  189. {
  190.    SOM_Resolve(this,ODBaseShape,SetGeometryMode)
  191.     (this,ev,mode);
  192. }
  193.  
  194.  
  195. /* public method: GetGeometryMode */
  196. ODGeometryMode   GetGeometryMode(Environment *ev)
  197. {
  198.    return SOM_Resolve(this,ODBaseShape,GetGeometryMode)
  199.     (this,ev);
  200. }
  201.  
  202.  
  203. /* public method: GetBoundingBox */
  204. void   GetBoundingBox(Environment *ev,
  205.         ODRect* bounds)
  206. {
  207.    SOM_Resolve(this,ODBaseShape,GetBoundingBox)
  208.     (this,ev,bounds);
  209. }
  210.  
  211.  
  212. /* public method: SetRectangle */
  213. ODShape*   SetRectangle(Environment *ev,
  214.         ODRect* rect)
  215. {
  216.    return SOM_Resolve(this,ODBaseShape,SetRectangle)
  217.     (this,ev,rect);
  218. }
  219.  
  220.  
  221. /* public method: CopyPolygon */
  222. ODPolygon   CopyPolygon(Environment *ev)
  223. {
  224.    return SOM_Resolve(this,ODBaseShape,CopyPolygon)
  225.     (this,ev);
  226. }
  227.  
  228.  
  229. /* public method: SetPolygon */
  230. ODShape*   SetPolygon(Environment *ev,
  231.         ODPolygon* polygon)
  232. {
  233.    return SOM_Resolve(this,ODBaseShape,SetPolygon)
  234.     (this,ev,polygon);
  235. }
  236.  
  237.  
  238. /* public method: GetPlatformShape */
  239. ODPlatformShape   GetPlatformShape(Environment *ev,
  240.         ODGraphicsSystem graphicsSystem)
  241. {
  242.    return SOM_Resolve(this,ODBaseShape,GetPlatformShape)
  243.     (this,ev,graphicsSystem);
  244. }
  245.  
  246.  
  247. /* public method: SetPlatformShape */
  248. void   SetPlatformShape(Environment *ev,
  249.         ODGraphicsSystem graphicsSystem,
  250.         ODPlatformShape platformShape)
  251. {
  252.    SOM_Resolve(this,ODBaseShape,SetPlatformShape)
  253.     (this,ev,graphicsSystem,platformShape);
  254. }
  255.  
  256.  
  257. /* public method: WriteShape */
  258. void   WriteShape(Environment *ev,
  259.         ODStorageUnit* storageUnit)
  260. {
  261.    SOM_Resolve(this,ODBaseShape,WriteShape)
  262.     (this,ev,storageUnit);
  263. }
  264.  
  265.  
  266. /* public method: ReadShape */
  267. ODShape*   ReadShape(Environment *ev,
  268.         ODStorageUnit* storageUnit)
  269. {
  270.    return SOM_Resolve(this,ODBaseShape,ReadShape)
  271.     (this,ev,storageUnit);
  272. }
  273.  
  274.  
  275. /* public method: IsSameAs */
  276. ODBoolean   IsSameAs(Environment *ev,
  277.         ODShape* compareShape)
  278. {
  279.    return SOM_Resolve(this,ODBaseShape,IsSameAs)
  280.     (this,ev,compareShape);
  281. }
  282.  
  283.  
  284. /* public method: IsEmpty */
  285. ODBoolean   IsEmpty(Environment *ev)
  286. {
  287.    return SOM_Resolve(this,ODBaseShape,IsEmpty)
  288.     (this,ev);
  289. }
  290.  
  291.  
  292. /* public method: ContainsPoint */
  293. ODBoolean   ContainsPoint(Environment *ev,
  294.         ODPoint* point)
  295. {
  296.    return SOM_Resolve(this,ODBaseShape,ContainsPoint)
  297.     (this,ev,point);
  298. }
  299.  
  300.  
  301. /* public method: IsRectangular */
  302. ODBoolean   IsRectangular(Environment *ev)
  303. {
  304.    return SOM_Resolve(this,ODBaseShape,IsRectangular)
  305.     (this,ev);
  306. }
  307.  
  308.  
  309. /* public method: HasGeometry */
  310. ODBoolean   HasGeometry(Environment *ev)
  311. {
  312.    return SOM_Resolve(this,ODBaseShape,HasGeometry)
  313.     (this,ev);
  314. }
  315.  
  316.  
  317. /* public method: Copy */
  318. ODShape*   Copy(Environment *ev)
  319. {
  320.    return SOM_Resolve(this,ODBaseShape,Copy)
  321.     (this,ev);
  322. }
  323.  
  324.  
  325. /* public method: CopyFrom */
  326. void   CopyFrom(Environment *ev,
  327.         ODShape* sourceShape)
  328. {
  329.    SOM_Resolve(this,ODBaseShape,CopyFrom)
  330.     (this,ev,sourceShape);
  331. }
  332.  
  333.  
  334. /* public method: Transform */
  335. ODShape*   Transform(Environment *ev,
  336.         ODTransform* transform)
  337. {
  338.    return SOM_Resolve(this,ODBaseShape,Transform)
  339.     (this,ev,transform);
  340. }
  341.  
  342.  
  343. /* public method: InverseTransform */
  344. ODShape*   InverseTransform(Environment *ev,
  345.         ODTransform* transform)
  346. {
  347.    return SOM_Resolve(this,ODBaseShape,InverseTransform)
  348.     (this,ev,transform);
  349. }
  350.  
  351.  
  352. /* public method: Subtract */
  353. ODShape*   Subtract(Environment *ev,
  354.         ODShape* diffShape)
  355. {
  356.    return SOM_Resolve(this,ODBaseShape,Subtract)
  357.     (this,ev,diffShape);
  358. }
  359.  
  360.  
  361. /* public method: Intersect */
  362. ODShape*   Intersect(Environment *ev,
  363.         ODShape* sectShape)
  364. {
  365.    return SOM_Resolve(this,ODBaseShape,Intersect)
  366.     (this,ev,sectShape);
  367. }
  368.  
  369.  
  370. /* public method: Union */
  371. ODShape*   Union(Environment *ev,
  372.         ODShape* unionShape)
  373. {
  374.    return SOM_Resolve(this,ODBaseShape,Union)
  375.     (this,ev,unionShape);
  376. }
  377.  
  378.  
  379.  
  380. };   /* ODBaseShape */
  381.  
  382.  
  383.  
  384. #endif       /* SOM_ODBaseShape_xh */
  385.